# backend/app/utils/logger.py

import logging
from datetime import datetime
import os

# 设置日志
log_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')
os.makedirs(log_dir, exist_ok=True)

def setup_logging():
    logger = logging.getLogger("app_logger")
    logger.setLevel(logging.DEBUG)  # 设置日志级别为 DEBUG

    # 防止重复添加处理器
    if not logger.handlers:
        # 创建日志目录
        log_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')
        os.makedirs(log_dir, exist_ok=True)

        # 创建文件处理器
        file_handler = logging.FileHandler(
            os.path.join(log_dir, f'backend_{datetime.now().strftime("%Y%m%d")}.log'),
            encoding='utf-8'
        )
        file_handler.setLevel(logging.DEBUG)

        # 创建控制台处理器
        console_handler = logging.StreamHandler()
        console_handler.setLevel(logging.DEBUG)

        # 创建格式器并添加到处理器
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        file_handler.setFormatter(formatter)
        console_handler.setFormatter(formatter)

        # 添加处理器到日志记录器
        logger.addHandler(file_handler)
        logger.addHandler(console_handler)

    return logger
logger = setup_logging()

def get_logger():
    return logger

